package com.wushijia.collections;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.LinkedBlockingQueue;

/**
 * ArrayList:无参构造方法初始化一个空数组，在添加元素时初始化数组长度、数组列表、插入慢，查询快、
 * LinkedList：无需初始化数组长度，双向链表、插入快，查询慢、
 * 使用自定义序列化，只序列化添加的元素
 */
public class CollectionDemo1 {

  static LinkedBlockingQueue<String> queue = new LinkedBlockingQueue<>();
  static Map<String, List<String>> map = new HashMap<>();

  public static void main(String[] agrs) throws InterruptedException {
    String[] strs = {"洛阳", "牡丹", "甲天下"};
    List<String> list = new ArrayList<>(Arrays.asList(strs));

    //使用iterator遍历删除元素
    Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
      String s = iterator.next();
      if (s.equals("牡丹")) {
        iterator.remove();
      }
      System.out.println(s);
    }
    System.out.println(list.size());

    //Map
    map.computeIfAbsent("sheetId", key -> new ArrayList<>()).add("designItemProduct.getProductRid()");
    System.out.println(map);

    //LinkedBlockingQueue
    queue.put("test");
    System.out.println(queue.take());
    System.out.println(queue.take());//阻塞

  }
}
